1. Field of the Invention
This invention relates to computer-based information organization, and more particularly to a method of grouping pieces of information together to allow information to be forwarded to diverse displays in a form appropriate to a specific user. The method may be useful for multiple applications involving display of information, including platform management in heterogeneous systems.
2. Description of the Related Art
The following descriptions and examples are not admitted to be prior art by virtue of their inclusion within this section.
Continual advances in software and hardware technology have led to a proliferation of available information-based devices, including computers, telephones, pagers, and personal digital assistants (PDA""s). Such devices are increasingly configured with the ability to interact and communicate with one another. For example, electronic mail may currently be sent to some wireless telephones and pagers, and PDA""s may be used to access some Internet (also called xe2x80x9cWorld Wide Webxe2x80x9d or xe2x80x9cwebxe2x80x9d) sites.
Information-based devices such as those described above generally include display screens for presentation of information to the user. The trend in size of these display screens depends on whether the device is fixed or portable. For example, displays associated with desktop computers are generally getting larger, to provide ease of viewing and/or accommodate increasingly complex applications and operating systems. On the other hand, displays associated with portable devices such as wireless telephones and PDA""s are small and often getting smaller, to enhance, e.g., portability and battery life. A severe mismatch between the display sizes of two devices communicating with one another may result from these differing trends.
For a situation in which a device, such as a desktop computer, which is normally configured for a large display transmits information to a device having a small display, this mismatch in display size may be particularly troublesome. Because all of the information viewable on the large display will not fit on the small display, a procedure for sending a manageable amount of information to the small display must be used. For example, the information normally shown on the large display may be divided into portions and sent to the small display sequentially, or some of the information may simply be removed from the information sent to the small display.
Both of these procedures may be disadvantageous for the user of the small display. If some of the information normally shown on a large display is not sent to the small display at all, then clearly the user may be denied access to a desired piece of information, and the device having the small display does not provide true access to the information of the large-display device. If the information is instead sent in sequential portions, multiple downloads to the small-display device may be needed before a desired piece of information can be viewed on the small display. Furthermore, pieces of information which are best viewed together may be divided between different portions and shown on the small display at different times.
As an example of interaction between small-display and large-display devices, a system administrator for a computer system or network may connect remotely to a system terminal using a telephone or PDA. The system terminal typically has a large display screen, facilitating rapid access to the values of system or network variables such as transaction rates, application program status, and disk space availability using, for example, a graphical user interface (GUI). If the system administrator contacts the system terminal remotely in response to notification of a problem with the system or network, there is generally a specific set of variables which the system administrator must observe in order to properly diagnose and/or correct the problem. If some or all of these variables are not sent to the small-display device used by the system administrator until after several other pieces of information are sent, valuable time may be wasted. Furthermore, if the variables relevant to the problem at hand are not displayed together on the small-display device, or at least in close succession, obtaining the needed information may be significantly more difficult and time-consuming than when a large display is used.
The difficulty in obtaining the particular pieces of information desired may be increased in situations for which ad hoc information is needed. Ad hoc information refers to information generated or organized in response to a particular event or request, as opposed to static information which is always presented in the same form. Examples of ad hoc information include an alarm message generated in response to a failure detected in a monitored system, as might occur in the system administration application described above, or a list of Internet site addresses (also called Universal Resource Locators, or URL""s) provided by a search engine in response to specific search criteria given by a user. Because the content of ad hoc information is by nature unpredictable, the likelihood may be small that a large-display device such as a desktop computer is configured to send the specific desired pieces of information quickly and efficiently to a small-display device in a given situation.
Difficulty in obtaining the desired pieces of information efficiently may also occur, however, in situations for which static information, such as information from a page within an Internet site, is needed. Such difficulty may occur because different users have different preferences as to which pieces of such static information should be obtained first. For example, one user accessing an Internet site established by a city government may be a citizen of the city who is most interested in obtaining links to various city government departments. Another user accessing the same site, on the other hand, may be a potential visitor to the city most interested in obtaining lodging and entertainment information. If both of these users are accessing the site using small-display devices, the computer hosting the Internet site is likely to send the content of the site to the devices in such a way that at least one of these users must wait for multiple information downloads and/or observe multiple screens of unwanted information before obtaining the desired pieces of information.
It would therefore be desirable to develop a method by which the most relevant pieces of information may be efficiently delivered to users of information-based devices having displays of arbitrary size.
The problems outlined above are in large part addressed by a method of configuring computer-based information for display, including assigning information tags, or labels, to pieces of information, or information units, stored in a computer system. In some embodiments, the labels are assigned by a user of the computer system, while in some embodiments they may be assigned by a developer of the information units, or assigned automatically by, e.g., an application program or operating system. The labels may be used, preferably by a user of the computer system, to set policy for the display of the information units. xe2x80x9cPolicyxe2x80x9d as used herein refers to one or more rules established in advance of a particular situation or event to govern the response of a computer system to that event. In particular, policy governing the way in which information is displayed may be set using a method described herein.
Using labels assigned to information units to set policy for their display may include, for example, using the labels to prioritize the information units and/or group selected information units together. The resulting priority and/or grouping information may be used by a display controller associated with the computer system in determining the order in which information units are sent to a display device. In this way, the information given highest priority by the user may be sent first to the user""s display device. Furthermore, information units which are grouped together by the user will be sent to the display device together, if practicable, given constraints such as the display size and the bandwidth of the transmission path between the computer system and the display device. Setting policy for display of the information units may involve setting criteria for other attributes in addition to priority and grouping. As an example, a preferred position on a display screen may be established as part of such policy.
xe2x80x9cUser of the computer systemxe2x80x9d, as used herein, refers to a person using the computer system primarily for the purpose of obtaining information or exchanging information with another user (though the user may enter some information into the computer system as well), as opposed to a person programming the computer system or developing software for it. The ability of the user to establish policy information is believed to be advantageous by allowing a person using a small-display device (or a display of any size) to receive desired pieces of information from the computer system more efficiently. Because the display controller uses the policy information to send the information units in the way specified by the user to the extent practicable, less time may be spent by the user waiting for the desired information to appear on a small display.
The labels as described herein are a form of xe2x80x9cmeta-dataxe2x80x9d, or data about data. In particular, a label preferably corresponds to a particular attribute of the data, and the value of that attribute. The label must be linked to the corresponding data (or information unit as described herein). In a preferred embodiment, this linking is implemented by relating the label to a reference or pointer to the information unit, where the relating is done using some sort of data structure. xe2x80x9cData structurexe2x80x9d as used herein refers to a collection of pieces of data (which maybe meta-data) and any relationships between the pieces of data. Though a data structure is stored in one or more storage media associated with the computer system, the various pieces of data within a data structure are not necessarily stored in adjacent storage locations within the computer system, and may not all even be stored in the same type of storage medium.
As an example of the method, a system administrator may establish display policies using labels assigned to system and network quantities. The value of such a quantity would be an information unit in such an embodiment. For routine monitoring of system performance, for example, establishing a policy may include establishing a priority sequence which puts highest priority on quantities which are most critical and/or most likely to signal a failure. Other priority sequences could be established for use in the event that a threshold value of a specific variable is exceeded. Grouping of information units using labels is also believed to be useful in the context of system administration. For example, it may be desirable to view values of a group of quantities associated with operation of a particular application program together on the same screen, particularly if a problem with that application program arises. In particular, a system administrator may group data associated with a threshold trigger to other data associated with an application which is known to be affected by the trigger.
If a specified group of information units is too large to fit on a particular display screen, it may be split by the display controller and presented on successive screens, but at least the information in the group may be viewed in relatively rapid succession. In some embodiments, a group too large to fit entirely on a display screen may fit within a buffer of the display device, such that the entire group could at least be downloaded at once. A combination of grouping and prioritizing information units may also be desirable, in which information units within a group are prioritized to be sent to the display in a particular order, and/or multiple groups are prioritized by group.
As another example, a user of an Internet search engine may establish priority sequences and/or groups of Internet site (or page) addresses (the information units, in some embodiments) using labels characterizing subject matter of the corresponding Internet sites. Conventional search engines receive search criteria from a user through entry of keywords, but the ordering of search results presented is generally not under the direct control of the user. The ordering instead depends greatly on the particular ordering algorithm used by a given search engine, and on the degree to which the design of an Internet site is compatible with this algorithm. In an embodiment of the method described herein, each Internet site or page included in a search is assigned one or more labels. These labels may be assigned by the developer of the site, and may take the form of existing labels such as the Meta Keywords Tags included in the hypertext markup language (HTML) often used to create Internet sites. Alternatively or in addition to such an assignment of labels by a site developer, a user of the search engine may assign one or more labels to a site accessed through the search engine, so that the user-assigned labels may be used in future searches. The user of the search engine may enter priority information (e.g. sites with label A should be sent before sites with label B) and/or grouping information (e.g. sites having both labels A and C should be viewed together, if possible) for use by the display controller of the computer system on which the search engine application is running. The display controller establishes an order of Internet site addresses resulting from a search based on the user-entered priority and/or grouping information.
Another example for which user-established grouping of information units may be advantageous is organization of electronic mail messages. In an embodiment of the method, each electronic mail message comprises an information unit. Some of the messages received by a user of an application program for sending and receiving electronic mail are typically retained for future reference. Each of these messages may be assigned one or more labels by the user. A label may be characteristic of the content of the message, or refer, for example, to a particular project or client with which the message is associated. The application program is configured to accept display policy information, such as priority and/or grouping information, for the messages entered by the user, so that the messages may be sent to the display device of the user in an order determined by the user""s input. In this way, for example, a user may conveniently review the thread of a particular topic of electronic mail discussion, or view messages pertaining to a particular project or client. Messages within a user-specified group could be prioritized in various user-specified ways, such as chronologically.
In another embodiment of an electronic mail application program, the message labels could be assigned by the sender of the message, instead of or in addition to assignment by the receiver. Such an embodiment may particularly be suitable for a workplace environment, within which a common set of labels could be established (including, e.g., project or client names). In this way, messages would already have labels before being read by the receiver of the message, and a user could set priority and grouping criteria to have incoming messages sent to a display device in a desired order. For example, only those new messages relating to a particularly relevant topic could be downloaded to a remote display device, leaving other messages to be viewed at a later time. Some features of the above-described electronic mail embodiments may be similar to those in existing application such as electronic messaging and news groups, but such existing applications are not believed to allow establishment of display policy by a user, as described herein. Instead, existing systems may typically allow the user to merely select from among preestablished options.
Embodiments of the method described herein may also involve setting display policy relating to multiple types of information units, or information units from multiple types of traditional application program. For example, policy could be set to display one or more documents associated with a particular person along with any incoming electronic mail messages from that person. In some embodiments for which the computer system is linked to a telephone system, computer based information (e.g., documents or electronic mail messages) associated with a particular person could be displayed in response to initiation of a telephone conversation with that person. The methods described herein for setting of display policy may also be used for numerous other applications.
The above examples generally relate to display of ad hoc information, which may present particular display challenges, as noted in the Background of the Invention section above. In particular, ad hoc information units may not yet exist during the time in which policy for display of the information units is being set. For example, a system administrator may wish to set a policy directing that in the event a particular application fails, the rate of a particular transaction during each minute of the five minutes preceding the failure should be displayed. Each of these five transaction rates to be displayed corresponds to an information unit, but these information units do not exist until just prior to the time of the failure.
Setting policy for such information units can therefore not be done by direct assignment of labels to the information units in advance of the existence of the information units. Instead, labels may be assigned, for example, to the type of information unit for which display at a later time is desired, so that display preferences for the type of information unit are established. For example, a particular transaction rate of an application may be a type of information unit, while the value of the rate at a particular time is an actual information unit. In such an embodiment, the policy set by, e.g., the system administrator may describe the particular information units needed for display in response to a particular triggering event, such that the information units may be collected or created when (or if) the event occurs. Labels corresponding to display attributes for the information units may then be assigned directly to the information units when they are collected for forwarding to the display controller.
The method described herein may also beneficially be applied to display of what is generally considered static information, such as the information on a particular page within an Internet site. In an embodiment, the various pieces of information included on the page, or portions of the page material, may be split into information units. This arrangement of the page information into information units may be performed by the developer of the Internet site. Portions of a site which information units might be formed from could include material such as xe2x80x9cContact informationxe2x80x9d, xe2x80x9cProductsxe2x80x9d, and xe2x80x9cLinks to related sitesxe2x80x9d. Display preferences such as priority and/or grouping preferences for portions which may be included on a particular Internet page could then be entered, preferably by a user accessing the web page, using labels corresponding to display attributes. The display controller of the computer system running the browser program may use this preference information in determining the order in which information units are sent to a display device, and/or how the information units are arranged on the screen of the display device. Subject to constraints such as display size and bandwidth, the portions of the page material are sent to the display device in the manner specified. In this way, a user of a small-display device may not need to wait through several download cycles to view a single desired portion of a web page if that portion happens to appear at the bottom of the page. The static information on the web page may be considered as being transformed into ad hoc information, since selected portions of the information are sent to the display in response to user-defined preferences.
In a method contemplated herein for configuring computer-based information for display, a label is assigned to each of multiple information units stored within a computer system. In an embodiment of the method, assignment of labels is accomplished by entering the labels into a data structure relating labels to information units. Alternatively or in addition, labels may be entered into a rules database stored within the computer system. Such a rules database typically includes information which may be used by a control program to create a data structure as described above at such time that display of an information unit is required. The control program may alternatively or additionally use the labels to create a document in a language suited for data transmission, such as Extensible Markup Language (XML). In particular, the labels may be used as tags or sub-tags in such an XML document. In embodiments for which not all information units have been created at the, time the display policy is set, labels are assigned to information units after they are created, in accordance with the preset display policy.
Policy, or criteria, for display of the information units is established using the labels. This display criteria is preferably established by a user of the computer system. In an embodiment of the method the display criteria includes a priority sequence. The priority sequence may be established by entering labels corresponding to a priority attribute and value of this attribute (e.g., a priority indicator such as a number or letter) for each information unit in the sequence. The established display criteria may also include other preferences, such as a preferred position on a display screen of each information unit. In such an embodiment, a label corresponding to a display position attribute and value of this attribute (e.g., a position indicator such as xe2x80x9cupperxe2x80x9d, xe2x80x9ccenterxe2x80x9d, etc.) is assigned to each information unit.
In some embodiments of the method for configuring computer-based information for display, the information units are arranged into groups. This arrangement into groups is preferably performed by a user of the computer system. The arrangement into groups may be accomplished by assigning a label corresponding to a group attribute and value of this attribute (e.g. a group name). Labels corresponding to group attributes may also be referred to as xe2x80x9cgroup labelsxe2x80x9d herein. Various display preferences, such as arrangement into groups and prioritizing of information units, may be combined together. For example, information units within groups may be prioritized using labels having a priority attribute as described above along with group labels. The groups themselves may also be prioritized in a similar manner.
In some embodiments, the arrangement of information units into groups may be implemented using an existing protocol such as the Wireless Application Protocol (WAP). In a currently proposed version of the WAP, a web page or other large collection of information or data is broken up into smaller data collections called xe2x80x9cdecksxe2x80x9d, wherein the grouping of data within a deck is tighter than the grouping of data on separate decks. The arrangement of information units into groups may additionally or alternatively include specifying preferred xe2x80x9cpage breaksxe2x80x9d, or boundaries between which information units are preferably displayed on the same screen of the display device. xe2x80x9cDownload breaksxe2x80x9d, or boundaries between which information units are preferably transferred to the display device in a single download, may also be specified. As in the case of all setting of display policy described herein, such specification of page or download breaks is preferably performed by a user of the computer system, at a time prior to the event triggering a display of information.
The information grouping described above may in some embodiments be used to form relatively small groups, or groups having relatively few members, such that a group may be viewed using one (or perhaps a few) screens of a small-display device such as a telephone or PDA. In addition to or instead of such small group formation, however, a group substantially larger than could be displayed on a screen of a small-display device may be formed. In such an embodiment, the group may be considered to comprise an infinite stream of information, which can be sent serially to a small-display device (by setting display policy as described herein). That is, the group is sufficiently large compared to the display capacity of the displaying device that displaying the entire group may involve sequentially displaying portions of an extremely long stream of information. The members of this type of large group, or the information units within the group, are preferably chosen by a user of the computer system, according to a particular interest of the user.
For example, the information in the group could correspond to information contained on a web page of interest to the user. Alternatively, the group could include values over time of a time-varying piece of information, such as a stock price. The order in which the information is arranged for display on a display device may be established by the user by using labels to create a priority sequence, as described above. This type of large, user-defined group may be particularly advantageous in the context of a three-dimensional scheme of information organization and navigation. In such a three-dimensional organization scheme, the information in this large group may be considered to be arranged along an axis in three-dimensional space, such as the x axis. Other related information may be arranged within the three-dimensional space including this axis, with various criteria used to determine the position of each information unit with respect to other axes (e.g. the y and z axes). Organization of information in a three-dimensional scheme, and formation of a means of navigation through this information, may advantageously allow a user to find desired information rapidly and intuitively, even within the constraints of a small display.
The display policy or criteria established as described above is preferably linked to a display controller associated with the computer system, such that information units are sent from the display controller to a display device according to the display criteria. In an embodiment, this linking is accomplished by programming the display controller to access a data structure including display criteria information. Such display criteria information may include priority information, grouping information, position information, or other types of display information. In some embodiments, the linking,is accomplished using a control program executable on the computer system. The control program may create a data structure including display criteria using labels entered into a rules database, and/or create a document such as an XML document, as noted above. Such a data structure and/or document may be sent by the control program to a display controller, from which it may be transmitted to the display device.
In addition to the method described above for configuring computer-based information for display, a method for displaying computer-based information is contemplated herein. An instruction to transmit to a display device a first information unit accessible using a computer system is detected. This instruction may be entered by a user of the computer in some embodiments. Alternatively, the instruction may be generated by a program running on the computer system. Display criteria corresponding to the first information unit are identified. In an embodiment of the method, the display criteria includes a priority sequence, where the priority sequence links or relates multiple information units including the first information unit. This identification may be performed by accessing a data structure and/or rules database containing priority sequence information for the multiple information units. The multiple information units may then be forwarded to the display device in an order determined from the priority sequence.
In some embodiments, the identified display criteria includes a group, wherein the group links multiple information units including the first information unit. As in the case of the priority sequence identification described above, the identification of a group may be performed by accessing a data structure and/or rules database containing group arrangement information for the multiple information units. The multiple information units within the group are then preferably forwarded to the display device before forwarding of other information units. In this way, the user may efficiently view information associated with the first information unit. Both group information and priority information may be used by the display controller when forwarding the information to the display device, and the grouping and priority information may be contained within the same data structure. The display criteria may include other information instead of or in addition to grouping or priority information, such as a preferred position on the display screen for the requested information unit.
In addition to the methods described above, a computer-usable carrier medium is contemplated herein. The carrier medium may be a storage medium, such as a magnetic or optical disk, a magnetic tape, or a memory. In addition, the carrier medium may be a transmission medium, such as a wire, cable, or wireless transmission path along which the program instructions are transmitted, or a signal carrying the program instructions along such a wire, cable or wireless transmission path. In an embodiment, the carrier medium contains program instructions executable on a computer system for receiving entry from a user of the computer system of display criteria, such as a priority sequence and/or a grouping arrangement, for information units stored within the computer system. Receiving entry of display criteria preferably includes receiving entry of labels corresponding to the information units. The labels may be entered by a user of the computer system, or established by the creator of the information units, depending on the application associated with the program instructions. The labels establishing the display criteria may be stored in one or more data structures relating the display criteria to the corresponding information units. In embodiments for which both a priority sequence and a grouping arrangement are received, the priority and grouping information may be stored in the same data structure. In an embodiment for which multiple groups are established and the groups are prioritized, such a data structure may also include group priority information. The program instructions may be further executable for forwarding the information units to a display device in a manner determined using the display criteria.
In addition to the carrier medium described above, a carrier medium containing program instructions executable for implementing the above-described method for displaying computer-based information is contemplated herein. A carrier medium containing a data structure is further contemplated herein. The data structure relates information units stored within the computer system to labels assigned to each of the information units, wherein the labels may be part of user-established display criteria, such as a priority sequence of the information units or grouping arrangement of the information units. In one embodiment, for example, a data structure may correspond to attributes of an object within an object-oriented programming approach, wherein the object is the information unit, and a label corresponding to each attribute is tied to, or associated with, the object using an object handle which references the object. A carrier medium containing a rules database is also contemplated herein, where the rules database contains display criteria for information units stored within the computer system. The display criteria is preferably established by a user, and may include labels corresponding to display-related attributes of the information units.